package cn.hg.solon.plugin.activerecord.demo.common;

import javax.sql.DataSource;

import org.noear.solon.extend.activerecord.generator.SolonGenerator;

import com.jfinal.plugin.hikaricp.HikariCpPlugin;

/**
 * 代码生成器
 *
 * @author 胡高
 */
public class _Generator {

    private static DataSource getDataSource1() {
        HikariCpPlugin plugin = new HikariCpPlugin("jdbc:mysql://localhost/jfinal_demo?useSSL=false", "root", "123456");
        plugin.start();
        return plugin.getDataSource();
    }

    private static DataSource getDataSource2() {
        HikariCpPlugin plugin = new HikariCpPlugin("jdbc:mysql://localhost/jfinal_demo?useSSL=false", "root", "123456");
        plugin.start();
        return plugin.getDataSource();
    }

    public static void main(String[] args) {
        // 获取数据源
        DataSource ds1 = getDataSource1();
        DataSource ds2 = getDataSource2();

        System.out.println("Start generate...\n");

        // 默认数据源
        SolonGenerator generator = new SolonGenerator(ds1, "cn.hg.solon.plugin.activerecord.demo.common");
        // 排除表
        generator.addBlacklist("blog2");
        // 指定自定义Model基类
        generator.setBaseModelClassName(BaseModel.class.getName());
        // 生成
        generator.generate();

        // ds2数据源
        SolonGenerator generator2 = new SolonGenerator(ds2, "cn.hg.solon.plugin.activerecord.demo.common");
        // 排除表
        generator2.addBlacklist("blog");
        // 非默认数据一定要指定数据源Bean名称
        generator2.setDataSourceBeanName("db2");
        // 指定自定义Model基类
        generator2.setBaseModelClassName(BaseModel.class.getName());
        // 自动生成代码
        generator2.generate();

        System.out.println("\nFinished generate.");
    }
}
